VERSION HISTORY (PART 2): --------------------------+ History From January, 2000 to 09/05/2K -----------------------------------------------------------------------+ Version .70 (09/05/2K) Added the Title Screen. There's no title though due to the lack of a name. But I came up with a logo at least. Options are Load, New, Quit. Pretty basic stuff here. Characters can no longer be pushed through walls and on ledges etc. Characters can no longer Pickup something way over their head. The Options Panel now has a bunch of options to play with. Multiple character's can no longer be disarmed, critically hit or chopped in half in one attack. Damage caused by additional Str has been doubled. So having high Str will have more impact on damage. Again weapons vary. Strong character's will need to use heavy weapons to take advantage of the extra Str. Pref's are now saved by the game on shutdown as well as whenever a game is Saved. Fixed a bug in Item Spot Plot, it was loading character graphics twice. It now does it once after waiting a moment. This allow time to cycle to other char's without having to load each. All Explosions as well as Particles and Ring objects are killed between Maps and after Loading a SaveGame. Added support for invisible 2nd-Item-Spots. Meaning a character like Brotha Mann can put stuff inside his hair and it won't be seen. Character's with trench coats, backpacks etc are all possible now. In Build Mode, when editing the Hitmap, the cursor's cords are now displayed. Also in Build, while HitMap editing. Pressing 4, 8, 6 or 2 on the Number Pad will Mirror the edge of the HitMap with the Map next to the current one in that direction. ...That probably makes no sense so I'll give an example: Pressing 6 loads the HitMap for the Map one Cell Right of the current one (say the current Cell is 3-2, it loads 4-2). It then takes the Left edge of that and places it on the Right edge of the current HitMap. And what the hell is the point of this? This is to make things easier when walls or whatever continue on to the next Map. Using this insures both edges are identical. If they were even slightly different there's a risk of a player moving from one Map to the next and ending up inside a wall, pit, etc. Water particles no longer stain the ground but instead create little rings. Fixed problems with using potions then (because the button is still down) picking things up. Hit Maps are now compressed! Each of these files were around 260K and one is needed for each Map. Given I'm targeting to have around 400 Maps that would have been 104MB of space! Compressed they are less then 10K x 400 = 4MB! The Save Game File Structure is in. This works like so: When the game starts it deletes everything in the Current directory, loads any Save Game Data, and copies any Map Data to Current. Anytime in the game that Map Data is needed it checks Current first, if it doesn't find what it needs there it grabs it from MapData. When a game is saved, everything in Current is copied into the Save Game's dir, overwriting anything already there. Save Game Data is then saved. Then the game exits, everything in Current is deleted again. What this means is this, You can now Load, Save and Delete SaveGames at anytime. Some Maps can be set to Save, i.e. You kill a boss character or something and leave, when you return he's still dead. This info is saved with SaveGames as well. When the game starts all directories needed for SaveGames and the Current directory are created if they don't already exist. CopyItem() now copies the item's effects (this was overlooked). When exiting from Build Mode. You must now conferm you wish to exit. Added Pause Mode. But this is much more then just a pause feature. While Paused, you still have full controll over all interfaces. Meaning you can take your time and setup inventory, formations, switch character control etc. etc. As an added bonus you can also pan the camera around freely and get a view of things. NPC's no longer throw items or use firearms when the item at very low altitude. i.e. An NPC in deep water won't shoot with a bow if the arrow's just doing to hit the water two feet in front of it. Binding Jab and Slash to the same button is now recognized. When this is the case, pressing the button with Run held down will Jab, without Run down it will Slash. Frame Skipping can now be set to, "Auto", "Never", or "Always" in Prefs. LineOfSight() can now be set to ignore a character. This allows NPC's to not see theirselves. That character's Attack Target is also ignored. With this, I was also able to improve Long Range AI quite a bit. LineOfSight() has been optimized for speed. NPC's using Firearms no longer wait to be aligned with it's target to reload. Added AI for using Explosion Potions. Added AI for using Whips. Fixed Party Member AI bug causing the NPC to constantly Attack then Retreat due to lack of HP. AI desiding if an item should be thrown has been improved. NPC's now recognize Explosion Potions as long range weapons. Fixed an AI bug. NPC's are not to switch weapons if they are holding a loaded firearm. This check was broken and has been fixed. Created Prefs.exe, this is a nice little app that let's you change various options without having to edit any files. However it's designed to not screw up existing options if you do deside to edit the file in a text editor. It even labels the values so you can see what's what. Prefs.exe doesn't have settings for a couple advanced and yet unsupported settings. Which is why someone may still wish to edit the file. Bug it won't be necessary for the common user. Fixed a bug in Character Compiler (External App) causing a slight graphical glitch in chars. The cursor in the Vendor interface now remembers which item it was over when you move it down to the options. This makes it easier to buy multiple's of the same item. Cursor in the panels now defaults to being over the inventory button. Made it so an item can't disarm unless it's jab/slash is at least 5/3. Fixed a bug keeping Players from walking/running while sinking into liquid. Added optional Reflections. Mostly seen in water, most object will reflect. For the 2nd Gound Image (this us used for scrolling backgrounds, forgrounds etc.) If one is not supplied it will use a default image. This was already in, but I've added to it. Now it will determine if this is a reflected image of the sky, if so it will use one of the Sky images depending on the time of the day (in-game). i.e. If it's midnight you'll see stars reflected in water, clouds in the day etc. Fixed a bug in the old default image code mentioned above. This bug caused the default image to be loaded even when the Map didn't require an image at all, causing slower load times. Imporved AI that desided if an item should be picked up when an NPC isn't in a fight. Added Food. Eating it (Use) will add some health based directly on the value of the food. Heal Potions now heal a tad more to give them an advantage over food. (And to justify their higher price, and existance for that matter) Cure Potions also give a bit more HP (when used while Con is Maxed). Fixed a minor bug when using Potions. If the resulting stat ended up being the max of that stat (and not greater then) it wouldn't say "...Maxed". Bug with clicking Quit and only having the Panel close and not the whole game has been fixed. Added optional "Walking" animations to characters. These are both optional globaly as well as per character. i.e.There's a master on/off switch in the Prefs. If set on, any character that uses the extra animations will do so. What these do are make the character in a more relaxed kind of position when standing/walking as there's no action going on. Blasts now stain the ground a little. More characters are now able to flank (there was a limitation there). Blood and Gore is now an option in the Prefs to make parents happy. Re-Ordered the loading of graphic surfaces to make better use of video memory. Str requirment to cut characters in half is now 50. Throwing is effected by fatigue more then before. Part of the reason for this is to provide more control when throwing things like explosions. By doing a Jab or Slash before Throwing you can intentionally raise your fatigue making the throw fall short. Of course this also makes high speed throwing harder. Throwing now requires higher Exp to be accurate then before. Character temp (temperature ) no longer get's screwed when they join/disband etc. (Sometimes a char would join and then lite on fire etc.) Ice effects are no longer applied when the attacked character's temp is well below freezing. And like'wise for Fire. This means repeatedly hacking at a frozen character won't continue to drop their temp and making them frozen for an hour. This also means doing this won't waste charges on the weapon. So you could freeze someone then use the same weapon to bust them up without using up the weapon's effect. All of the melee damage code has been re-coded. Without going into too much detail (because it's pretty complicated) damage is better determined. The following stats effect damage: Attacking Weapon's......Mass, Category, Jab or Slash -Modifier Attacking Character's...Exp, Str, Fatigue Defending Character's...Def, Direction, Position All of these things relate with each other the way though ought to. i.e. A light sword will benefit from high Agl, while a heavy axe would be better in the hands of a strong character. This code works much much better! Damage by thrown weapons is now less. Weapon Mass, Character Agl and Str now effect fatigue when attacking. Added Whips Fixed a bug causing damage from fatal blows to not be seen (no numbers). Optimized the camera when in Group Tracking mode but there's only one player. Added "Long" weapons. These have slightly longer range then other weapons. Added "Ridiculusly Huge" weapons. These are also "Long". Added the World Map Panel. This shows your place in the world. Currently this shows the demo version map which is very very small compaired to what will be in the final game so there's more detail. The full version map will be much like the one in AC. Made a few small changes to some of the other panels. The only icons at the bottom part of the panels are those for switching panels only. The "Trash Item" icon has been removed. Besides technical reasons, there are a few gameplay related reasons why I've done this. The Character Cursor in Build Mode now points to the ground the character is standing on (not it's head). NPC's attacked while they already have a target will consider switching it's target to the new attacker (This was not working fully for melee attacks). NPC's attacked while having a target who isn't in line of sight will now attack it's new attacker. i.e. For some reason a monster, who is outside, is trying to get at a monkey who is inside a building. If Bob throws a rock at the monster, the monster will attack Bob. When an NPC checks line of sight to see if it has a clear shot at something from long range it now checks to see if any characters stand in the way as well. NPC's using long range attacks will now make sure they're not too close as well as too far unless using a firearm (why not shoot point blank?), this should also help with NPC's blowing themselves up. NPC's will no longer throw healing-type potions as an attack. Long Range Attack AI code has been optimized. Neutral Hostile NPC's now attack any character that get's very close to it. NPC's that are hit by a Blast and deside to attack the character that threw it will no longer do so if they threw it themselves! FrameRate Regulation code has been tweaked some more (thanks to my new Celeron 533 system). Not only should it maintain FPS better but it better manages Frameskipping. Something I found out was it was FrameSkipping a lot of times when it didn't need to. So now the game looks very much smoother. Fire and Ice Items now have greater effect (and Jab does more then Slash). Poison Items now have a greater chance of working. Item Effects are now applied when the item is thrown, but not as much. Fixed an AI bug preventing NPC's from considering some items to be picked up while allowing other ones which shouldn't, at differing altitudes. i.e. An NPC standing on a cliff would ignore a sword at it's feet and wonder off the cliff for another sword down there. Re-worked how Covers become hidden/unhidden (for rooftops etc.) This is now completely automatic (there used to be invisible triggers that had to be placed into the map). This works much better and makes map editing simpler. Attacking with a Light Weapon or no weapon at all no longer stuns the victim. Fatigue applied to a hit character has been changed a bit. Light weapons now have nearly no effect, while others have been toned down a tad. This means you can no longer knife someone repeatedly (since light weapons are so damn fast) without taking some hits. "Light Weapons" include, Knives, Spears, the War Fork, Arrows & some Swords. Torches now deal some minor fire damage. Fixed a camera bug, causing it to do a quick scroll just after a map loads. Added Critters. These are pretty much just little animals and exist only to make things a bit more life like. You can pick them up and throw them etc. -----------------------------------------------------------------------+ Version .61 (Released as an Update to Version .60, 05/21/2K) Files Included: \incoming.exe \game1\prefs.cfg \game1\miscgraphics\effects_graphics.bmp \game1\miscgraphics\misc_graphics.bmp \game1\docs\Version History Part 2.txt \game1\docs\Controls.txt \game1\docs\FAQ Game.txt \game1\docs\FAQ Tech.txt \game1\mapdata\cell0-1.dat \game1\mapdata\cell1-0.dat \game1\mapdata\cell1-1.dat \game1\mapdata\cell1-2.dat \game1\mapdata\cell2-1.dat \game1\mapdata\cell3-1.dat \game1\mapdata\cell4-1.dat +----------------------------------------------------------+ Fixed bug with particles spawned from the Monkey's Paw not being at the right alt. Pressing Run+Use while an item is In Hand now places it in Inventory (Fast-Pickup). Added "Inventory Full" message to Fast-Pickup. Added Character vs Character Hit Detection. For the most part this just means you can't walk through other characters. However, Party Members Can walk through each other. When Running, if a character hits another character it will fatigue, and possibly fall down if it's Str is lower the the other character's. The primary reason for this is to keep players from running through a hord of enemies without suffering some hits. You should have to battle your way through or sneak around them. Another note, if a character is standing in the way you can push them by walking into them. The D-Pad can now be used to move the cursor in the menu system. Added D-Pad Sensitivity to the prefs file. This only effects the speed of the cursor in menus. Clicking the formation number at the top of the Formation Panel now cycles through formations. When a character skids (from changing direction for example) there's now little puffs of smoke. Yay! Optimized two functions that return distance (between stuff) info. Added Light Casting, realtime light sources with shadows and all. However this is pretty slow right now and has an issue or two. This code should be considered beta at this point. At this point I'm not sure how or if I'll use it. I only put it in to expirement with. Twinked how much time NPC's are allowed to spend when picking up items. (Gave em a tad more time) Fixed a bug with damaged caused by shot arrows, This bug may not have actually caused the wrong damage to be applied (although it could have) it was simply bad coding. Fixed a bug with thrown objects calculating damage wrong. This one I do know was messing things up. "Pickup" is now known as "Use". Now that the same button has more functions I think the new name better suits it. The camera can now track all human controlled party members (and does so by default). See "controls.txt" for camera tracking options. There's no longer a weight limitation for secondary items. Pressing Use while a potion is In-Hand will now use it. Added ripple effects in water. Fixed Formation Stay bug when a character Joins. Fixed another Formation Stay bug when switching control between characters. Characters on Ice that are moving faster then their Agl will let them now slip and fall down. This also makes it impossible to Run while on Ice. I may add AI to NPC's with high Exp so they no not to run on Ice. However, for now I'm leaving it as is to see if that ever becomes necessary. Added AI to keep AI Party Members and NPC's with 4000+ Exp from running on Ice. Thrown Explosion Potions now do a maximum of 50 of damage (was 75). Standing in water while burning now drops the character's temp faster. Fixed some problems with Frozen Characters when they die. I did a great deal with Reloading. Fixed a few bugs and cleaned things up a bit. This code is much more solid now. I also added a "x Reloaded x" message for Reloading from a single Arrow. If a Party Member is disbanded, then a new character joins. If that new character takes the same place of the old one, the old one is deleted. i.e. Bob is the 3rd character in the party. Bob's disbanded. Johnny's asked to join and then takes Bob's place as character 3. Bob will vanish without a trace, with any items he was carrying. This is a [temporary?] fix to a limitation in character graphic memory. If the character isn't deleted in this case it would suddenly look the same as the new member. Most of the time a disbanded character no longer has a roll in the gameplay so it shouldn't effect the play much. However this fix still is sorta halfass so if it comes up a lot I'll see about keeping that character from having to delete. Blasts no longer effect nearby character's Con. Blasts now blow objects away in the right direction at the correct speed. This is based on the Blast's Thrust level. Mounted Items and Items with Mass 75 or greater are not effected. Particles created by the blast are also uneffected (or they'd fly too far). -----------------------------------------------------------------------+ Version .60 (04/20/2K) Characters can no longer Jab with Ammo containers. The character will Slash instead. If two NPC Party Members find that they're in each others way while fighting the same target, whichever one is lower on HP will quit fighting unless the target is targeting that Party Member, in that case the one with more HP will quit. A hit (melee) character is no longer stuned or faced towards it's attacker if it was a weak hit (damage or otherwise). Basically if your fighting a tough character and some little bitch comes along and starts slapping you if won't interrupt your real fight with the big guy. NPC's will no longer attack using some Items. i.e. Money, Ammo etc. Made minimum speeds for water. So if a character's Agl would normally be too low to let it move while in water it will be granted the slowest speed. Vendor Inventory now loads/saves extra Item Effects. I had some code that would cause NPC's to put away their Firearms if they weren't going to be using them (Mainly so guards wouldn't be walking around town with guns in hand etc.). This has been disabled for gameplay reasons. Added AI to keep NPC's from walking off ledges. NPC Party Members will walk off a ledge if the group leader (the first human controlled party member) is lower then that character. i.e. Everyone's walking on a bridge, they won't jump down below unless you do first. (This does not include Pit's, no NPC will walk into a Pit on it's own). Added AI to keep Enemies from targeting characters much higher or lower then themselves unless they have a Firearm or Explosion Potion. Note: Because of this you may notice NPC's shooting over their target's head. In the next version I'll be adding Auto Vertical Aiming to firearms, ah'la DOOM. This will allow you and NPC's to fire up or down at targets. Made default Agl for all characters lower. This makes it to everyone moves a bit slower. This, I hope will bring more strategy into the game as well as make Agl more valuable. Some particle types were able to land on pits (fixed). Fixed the problems with reading things (signs) while an NPC is near you. The Keyboard was being polled twice in the Vendor interface (fixed). The Vendor Interface now fully works without the need of the mouse. Cleaned up NameObject quite a bit. Naming char's when they join is nice and spiffy. I also made it so you can select through the letters and such by pressing up or down. This was in before but it was hurtin. Note, the current font does not have lowercase, so all lowercase letters appear as uppercase. Fixed a bug causing attacking NPC's to stand still at a certain distance from it's target. Fixed problems with Formation: Stay Neutral Friend's with a Pickup Level of zero (Won't Pickup Items) now stand still. This is mainly to make Vendors that stand still but don't fight. Made it so Firearms with added effects don't apply the effect(s) when Slashing. They must be shot. Fixed a flaw in the way particles scale. This is fixed, and they lot sharper! Particles have been optimized for more speed. You can now see up to four arrows in quivers (any more after looks the same). This makes it easier to tell if you should bust ass getting to that quiver on the ground or just leave it. Made it so you can see "extra item graphics" in inventory, vendors etc. These graphics include arrows on bows/in quivers, the hands on clocks, and anything else I may add later. Fixed a nasty bug causing some characters to die before their time. This, was very shitty. Characters can now be hit while stunned. This was the original intention but for some reason I didn't code it that way (am bug). HP Bar's now begin flashing at 15HP (was 25HP). This is because some characters will have much lower Max HP levels then originally planned. NPC's who arn't fighting and are looking for an Item to pick up, now look for more expensive Item's then before. NPC's will no longer consider Items without Line of Sight when looking for an Item to pick up. Cure Potions, Cures have a few effects and their rules have changed a little, so here's how they now work: Drinking one will raise the Character's Con +1. If the Character's Con is already Maxed it will raise the HP (not as much as a Heal though). In either case , or if the Character is Frozen/Burning, it's Temperature is cured. And if the Character's Con, HP and Temp are all okay the Potion is not wasted. When Thrown, the Cure may effect one but only one Character that's near the Potion when it breaks. Only one of the above effects will be granted, the effect is chosen by priority. Due to the added effects, Cure's now cost 75. Alt+Tab now results in the game closing. This isn't too great but it was crashing before so this is a step in the right direction. Also, all Direct- Input Devices, including the Keyboard and Mouse are now Unaquired (Given back to Windows) when this happens. Fixed a bug in the Inventory Panel where if you moved an item from inventory to a character while the maximum number of items has been reached, the item would be deleted. This hinted me to another bug... It should never be possible to reach the maximum number of items. The spawning of items is handled very delicately. One of the ways I maintain a low number of items is by breaking/deleting arrows. However I let something slip: When an arrow hit a wall it would never break/delete. So if you got a few quivers and unloaded into a wall you'd max the items (because arrows spawn from bows). Both of these bugs have been fixed. In the event the items are maxed while moving items around in the inventory panel nothing will happen (the item won't move or get deleted). Once back in-game the status panels will give a warning of the max. The Options Panel now recognizes the Gravis GamePad Pro and MS SideWinder Game Pad and will better describe their buttons. i.e. The Gravis Pad has colored buttons so they're displayed as "Red", "Blue" etc. SideWinder uses A, B, C, X, Y, Z.. All other DirectInput devices will still work with the game, only their buttons will display as a number. I will be adding this extra info for other devices as I find out more about them. If you have another device and would like to help please contact me. Added HyperSnap-DX support! HyperSnap-DX must be setup to capture DirectX using ScrollLock (default). The game must also have this enabled (this can be done in prefs.cfg). Note: The way this works is by releasing the keyboard from Direct Input for 100+ms. During this time all normal Windows shortcuts will be enabled as well. So if you press something while HS does it's thing you could screw something up. Another reason this must be enabled is in case you want to bind an action to Scroll Lock for whatever reason. So this option is Off by default. I've doubled the max number of particles from the last version (now 200). The Slash Attack now takes slightly longer to make contact. NPC's are smarter when in groups then before. Drinking a Potion when the effected stat is already maxed will no longer waste the potion. i.e. Using a Heal with full Health won't use the Potion. Fixed a bug in Item Hit Detection with Walls. All Objects now recognize Altitude Terrain. Body Parts are now a bit heavier. You can now drink (give to self) Explosion Potions. This will cause the character to drop all weapons and become a walking time bomb. After a set time it will detonate. The strength of the blast is directly effected by the Str of the character, so wimpy chars won't do much but a big guy will nuke a wide area. Take care when using this! Fixed Arrow Quivers not renaming after using Fast-Reload or when in Inventory. Increased the odds of an Enemy NPC ignoring the character it is considering. This is for a number of reasons. I figure most of the time the player will be the one who attacks first but mainly this gives the player(s) a chance to respond when there are many Enemies at once. The Enemies will jump in little by little instead of all at once. Enemy NPC's will no longer start a fight if it's much higher/lower then the character it's considering. Added Temperature to Item's and Characters. This is an unlisted stat for Characters. Some types of Magic, Terrain and Items will be able to effect this. It will also return to normal over time. For whatever reason, if a character get's too cold or hot to a set degree it will be in a state of Frozen or Burning. While frozen, the character cannot move in any way on it's own until it thaws, it's traction will also be dropped (the character will slide and can be pushed around). Overall the character will be extremely vulnerable. When Burning the character can move normally, however it will take damage until it cools down. There may also be other penalties.. Items work a bit different. When a fire or ice spell is cast on an item (note this may be restricted to Weapons only) it will Charge the magic. Each time the item is used to attack a character it looses a charge and effects the character's temp. You can also buy such Items. i.e. You cast Freeze on a Sword to get a Sword of Ice, the number of charges will vary depending on your character's Freeze Level and how many times the spell was cast. The Sword of Ice is then used to fight a zombie, after a few swings the zombie is Frozen. You then bust out a club and swat it and the zombie slides off a cliff. Added help text to various interfaces (moving the cursor over something displays brief info about it). Background Scrolling (Non Tiled) in Display Mode-2 was broken (fixed). Added "Copy Down" to Item Spot Plot. Clicking this copies the location and direction of the second item spot to all frames of the same direction. This is very handy since most of these will be the same. After clicking this you can edit the frames that need to be edited. Added "Mirror" to Item Spot Plot. Clicking this mirrors the spots that face east to the one facing west. Another time saver. Camera now tracks altitude. Quite smoothly I might add! CameraTrack() was having perimeters passed to it when it didn't really need them. This was leftovers from when the camera didn't use pointers. Seems I forgot to remove those (Doh!!) When Saving a Map in Build Mode, any characters that are not a Guard of some kind will have their Way Points disabled. i.e. Creating a Guard, setting up waypoints then changing the Character to an Enemy won't Save the "Use Way Points" flag. The Points themselves will remain to allow for scripting stuff. i.e. A script could make a bunny into a guard and enable it's Way-Point flag, thus creating a bunny that would patrol around it's nest or some such. I doubt I'll ever do anything like this but it's just good practice. Spawning Characters in Build Mode no longer auto Defaults their stats or Graphic Set. When I originally put that code in I broke my own rule of thumb that "automatic stuff sucks" -My lil rule proved it self once again. All this did was make things harder to control. Any character can still be Defaulted by pressing F (this sets up it's stats based on what Graphic Set it's using). Corrected some problems with Disbanding Party Members. Before, when a member got the boot it would hang around using the same object. This was fine until a new character tried to join the Party while that other character was still active. When checking to see if the new char could join it would treat the newly disbanded one as part of the group which causes many problems. So now: When a character is disbanded it is copied over to a new object that's outside of the first four character objects (which are reserved for Party Members). The only problem with this is if there are no open objects (the max number of active characters is already reached) the character won't disband (it'll say "It's to busy here" or something to that effect). So you'll have to kill something to free up an object or go to a different Cell. But this is a lot better then how it was before. Added "Tile Scrolling", which is a new 2nd-Ground Mode that scrolls up, down, left or right at high speed. This looks pretty damn cool but I've tweaked it to allow for some interesting effects. To give some ideas of what this does here's some examples of things that are possible: Fight on a boat with water rushing by. Waterfall(s) in the background. Huge flocks of birds, bats, monsters etc. above or below the action. Fight waist deep in a rushing river. Added Money Bags and a few types of jewels. These will be extra rewards given for slaying tougher enemies. The jewels can be sold for various amounts. Money Bags instantly give you how much they're worth when you pick them up. Jewels tend to be worth a whole lot since you only get half when selling items. Added Line Of Sight. What this does is checks to see if anything is in between two x,y,z points. This includes walls, trees and such, the ground, and anything else that could be impassible. In general, this is checked from the top of a character. i.e. If a short desk was between two characters they could see each other over it, assuming they are both tall enough (a kitten would be hidden behind the desk -yes characters have height). This allows for much improved AI... The same general coding listed above is used for various other things. Like, NPC Party Members trying to get in position, NPC's trying to attack their target etc. Unlike so many other games, NPC's in this don't get stuck on the corner of a wall/stick/whatever to be helplessly beaten. They will find their way around things. In time they can even find you hiding inside a building (if not they'll meet you outside!) They will also keep within a set radius of their target (depending on what that target is) and hang around within that range. You can run but you can't hide! Line Of Sight has also been put to use with other things like Targeting, Talking with NPC's etc. NPC's now check Line of Sight and Distance when Throwing items. NPC's will no longer attack a character for any reason if it does not have that character in it's line of sight. Guards that end up away from their post(s) will now be able to find it much easier now. If something stands between the guard and it's way-point it will literately walk around untill it can see it. Characters with Pickup Level set to "Can't Pickup" also can't Swap, Throw, Drop, Give or Exchange Items in Inventory. Fixed a bug in NameObject(), also got Backspace working how it should. Frame Rate Regulation has been tweaked a tad. Disarming probability has been tweaked. Made it so Non-Party Member Character may have Agl less then 1.50 If such a character joins the party it's Agl will rise to 1.50 This allows for very slow NPC's i.e. Zombies. Fixed a problem with Targeting Items while in Build Mode. Fixed a few graphic bugs with Items. Fixed a clipping problem with items held by characters who are falling in pits. Delay Penalty from using inventory is now longer. Having high Agl can speed it up a bit though. Added an icon jobby that displays while a character is in the Inventory Delay. Graphic Set's weren't getting initiated right. (Fixed) Totally reworked Item Spot Locations (ISL). This includes how the ISL Files are formatted but more importantly how it's all handled. Before, the Secondary Item Spot on a character had to be pretty much fixed on one spot of the sprite. This is no more, both Item Spot Locations are now treated the same. Either Location can be anywhere, facing any direction. Even though this is like twice the information being stored, the files are only about 500bytes larger. This is due to heavy optimizations everywhere possible. All in all the code is better, cleaner, smaller and faster! The hell does this all mean? This means there's a lot more freedom in creating characters. Examples: Weapons can now be strapped on a character's back, leg, or arm. Items can be carried in both hands (but only one would be considered when attacking). Item Spot Plot (the app that creates the ISL files) has been reworked as well for reasons listed above. It's interface and display have been greatly improved as well. Unassigned KB Keys now show as "---" in the Options Panel. Gave all Players their own KeyBoard configuration. Except Player 4 has all it's keys disabled for lack of keys on the KB itself. The layout isn't all too practical. I did this mainly so new players won't wonder why one Player is controling the whole party. The interface for entering text was missing the Backslash key. (Added) Fixed a bug causing some potions to display a stat increase of zero. Fixed a bug with spawned smoke puffs when fire lands in water. In the last version I made it where you had to hold Run while pressing Throw to get the full force of the throw. I've now disabled this. Not a bad idea but it proved to be more of a pain in the ass and made the interface more complicated then it needed to be. Redrew the gibs and added a few more. Characters that die via explosion will randomly spawn a Bloody Bone Item. This will never happen if the character is smaller then a set size. Shot Arrows that "sink in" to it's target are now deleted. i.e. If the Arrow grazes it's target it's likely to fall to the ground. Minimum Character Level is now 1 instead of 0. Traction wasn't being applied while a character was below sea level. This bug was caused when I added the various Altitude Terrain. (fixed) Fixed a bug in Build Mode where the cursor would show terrain altitude when in Item Edit. This should only happen when editing Alt Terrain Types. Added many more Alt Terrain Types. -----------------------------------------------------------------------+ Version .55 (Unreleased) Can now cycle backwards through Item Categories in Build Mode. It is now possible to Target the Ground via TargetObject(...) This will be used by some types of magic. The Targeting if Item's wasn't checking the targeting range. This has been fixed. The Cursor was able to go off the right and bottom edges of the screen while Targeting. This has been fixed. Added D-Pad (Whatever Movement Key's your using) support to Targeting :D Targeting has two modes: D-Pad and Mouse. Simply by moving the mouse it will switch to the Mouse mode. By pressing up/down/left/right D-Pad mode is enabled again. When in D-Pad mode pressing Left/Right cycles through Characters, and Up/Down Cycle through Items. Most of the time you'll only have the option to target one or the other, but some spells will allow both. Fixed problems with Targeting Characters while they are in water and some other cases. Added, int DistanceBetweenPoints(int x1, int y1, int x2, int y2) This is an alternative to, int DistanceBetweenCharacters(c1, c2) Fixed a bug where if you Disbanded a Member and then everyone in the party died while that character was still living the game would not end. However, it is still possible to have all NPC's in the party. Added a Default HitMap. This is only loaded if a MAP or BMP Hitmap isn't found while in Build Mode. Added a bunch of Altitude Terrain Types and made them quite functional. Characters and Items can now move about on top of things. Ledges, bridges, staircases, tabletops are all now possible. In Build Mode, Once a Map is Loaded the Cell becomes "Locked In". Meaning you can't change the current Cell (Load a different Map) once one has been loaded. This is because Loading a different Map over another will leave things behind from the first and can cause corrupt Map files. To re-init everything to load a new Map the engine must be restarted. Agl values now display as floating point. Agl ranges from 1.5 - 3.5 The Character Stats Panel now shows Character Level. Level ranges from 1-50. When one or more characters gains a level a text dialog will display to say so. This dialog does not pop up immediately, but waits till the action slows before getting in your face. If more then one character gain a level the dialog is smart enough to show all of them in the same text. When a character has -Con HP Particles are no longer spawned. i.e. You won't see 1's and 2's popping off characters. The only way of knowing is by how much the character is bleeding or looking at it's stats. You can now easily change who/what controls party members from the Character Stats Panel. Just click "Player x" to cycle through all four players or AI. Yes, it is possible to have nothing but AI characters or control more then one character with the same player. Hand Gun and Shotgun shots now deal more damage. Damage for these is still highly dependent on Exp. Shotguns no longer blast people as far back, but still pretty damn far! Ammo Containers now decrease/increase in value as ammo is removed/added. I increased the range for Giving Items. I'm convinced I've finally squashed the Death Grip Bug. But I'll keep an eye out for it! Changed many item's default stats. The fatigue taken by Attacking is now different depending on the type of Attack and the item's Mass (If an Item is In Hand). This means light weapons can be used faster then heavy weapons. Added many new items. Thrown items now do less damage. To Throw an Item at full force you now must hold Run while pressing Throw. Otherwise the Item is thrown at half force. This provides a little more control over throwing and is handy when throwing potions at targets. NPC's now know how to use Cure, Heal and Mana Potions. They also know how to use Explosion Potions in combat. Re-wrote a lot of the Hit Detection with Terrain. This new code puts the new HitMap to use (The Non-GDI Joy I did earlier). This works Very well. There's no more getting stuck in walls and things just seem more solid. Made a few changes with Jab/Slash Attack Hit Detection. Things should be a bit more accurate. Also, you can no longer attack through walls. Held Items now clip to Sea Level. Added Gib Particles. These are only spawned when a character is killed in a very messy fashion. Added Time. In-Game Days are 20 hours, 10 hours am and 10 pm. Hours are 60 minutes. An In-Game Hour is about 2 Real-Time Minutes. So a Day In-Game takes about 40 Minutes Real-Time. Added Working Clocks. These are just like any other item in the game. The only difference is they show the In-Game Time. Fixed some problems with the camera not switching targets correctly when Player Controlled Characters die in various ways. Added "Show Loading Text" to the Prefs. Set this to 1 to see info on what's being loaded, as seen in Version .50 If you want to delay the game a moment to read the text, set this to a higher number. The higher it's set the longer the delay will be. I've changed the max number of Particles from 75 to 100. Potions no longer break when thrown in Water or Pits. When a character is killed it's Con is dropped to 0 if it was anything greater. This prevents characters from not dying even when they were killed. Because of the above, the Monkey's Paw no longer effects the character's Con. Explosion Potions have been tweaked. Blast Damage is now calculated differently. Damage radius is also much farther then before. (Note: Blast Damage and Thrust is independent) Rewrote the AI that desides if a character should attack when it's effected by an explosion. In short, Party Members won't start attacking each other, Neutral's never attack, all other AI types attack if the explosion was created by an enemy of that character. The Vendor interface has been cleaned up quite a bit. Placing the cursor over stuff gives you info etc. The layout's better and a bug or two has been fixed. Status Panels are now removed from the screen when Dialog or the Vendor Interface is displayed. This looks a lot cleaner and has allowed for the Vendor stuff to be layed out much nicer. Cleaned up the NameObject() interface. Pressing Enter Okay's the name and Esc Aborts. All other keys on the keyboard edit text. Manip, Menu etc. on devices work as in the menu system. Fixed a nasty bug locking the hitmap surface for GDI (I've replaced the GDI calls) so all this was doing was slowing down the game. Fatal Error Messages now display for a set amount of time instead of waiting for a key to be pressed. The Mouse wasn't being released from Direct Input correctly (fixed). Added Explosion Objects (graphics). There's currently a max of 10 explosions that can be active at once. However, if this max is reached Blast effects will still take effect. i.e. If you don't see the explosion, it's still there. Added '-', '+' and '.' characters to font-b (little red text). I also cleaned up the currency character. Reworked some inventory code so you can't cheat the "Inventory Delay". Guards now "see" a bit longer range. Friendly Guards still see farther then Enemy Guards. By holding down Run while picking up an Item you can now place it directly into inventory. If an arrow is picked up, the game will check to see if you have a quiver on your secondary and reloads it. If it doesn't find one there it will look for one in your Inventory. If no quivers are found the arrow's placed in inventory like any other item. Notes: For gameplay reasons: Bows and other firearms can not be reloaded in this mannor. Your character will still get an "inventory delay" from this. Tweaked how Str is applied to Damage. You will now get a larger damage bonus from Str and heavy weapons. Cleaned up function Blast(). There were a few bugs a cpu hogs in there. Updated function SpawnParticles so that the particles can be spawned in a ring pattern. This will be used for a few effects. Can no longer Resurrect characters that fell in Pits. Characters can no longer get out of a "laying down" position while in the air. Cleaned up the Key Config functions. The Panel now displays full names of keys instead of just the first letter. Added Mouse Sensitivity and V-Sync to Options Panel. Items now clip to the screen's edges. Function CopyCharacter() now copies the character Max_HP and HP. Build Mode: Changing Character Graphic Set's no longer Defaults the character automatically. This got annoying! Pressing F will Default it still. Pressing Menu while Targeting will abort like the other interfaces. -Documented by Kevin Reems